package com.app.mapper.article;

import com.app.domain.po.article.ArticleCountPo;
import com.app.domain.vo.article.ArticleCountVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * ArticleCountMapper
 */
@Repository
public interface ArticleCountMapper extends BaseMapper<ArticleCountPo> {

    /**
     * 批量查询文章计数器
     *
     * @param articleIds 文章ID集合
     */
    List<ArticleCountVo> batchSelectArticleCounts(@Param("articleIds") List<Long> articleIds);

    /**
     * 查询文章计数器
     *
     * @param articleId 文章ID
     */
    ArticleCountVo selectArticleCounts(Long articleId);

    /**
     * 更新文章点赞数量
     *
     * @param articleId 文章ID
     */
    void updateArticleLikes(Long articleId);

    /**
     * 更新文章访问数量
     *
     * @param articleId 文章ID
     */
    void updateArticleLooks(Long articleId);

    /**
     * 更新文章评论数量
     *
     * @param articleId 文章ID
     * @param count     评论数量
     */
    void updateArticleComments(Long articleId, Integer count);

}